import stageConfig from '@/config/stage' // 引入舞台配置
/**
 * 筛除掉所有的父级路由，将所有的最终子路由打平，这些最终导入到 vue-router 中的路由都可以在 舞台 展示出对应的页面。
 */
// 深度遍历配置树, 摘取叶子节点作为路由部分 递归函数
function deepTravel(config,fuc){
  if (Array.isArray(config)){//1、判断config是否是数组 每一项subConfig都执行一遍自身函数
    config.forEach(subConfig =>{
      deepTravel(subConfig,fuc)
    })
  }else if (config.children && config.children.length){//2、执行到subConfig，判断是否有子路由参数且不为空
    config.children.forEach(subConfig =>{
      deepTravel(subConfig,fuc)
    })
  }else {//以上条件筛选完父路由只剩下了子路由subConfig，执行参数中都fuc函数处理路由并push到homeRouter中，即使不要这个参数单独抽离出来一个函数也可
    fuc(config)
  }

}

let homeRouter = []
deepTravel(stageConfig, viewConfig => {
  // 构造舞台view路由
  const viewRouter = {}
  viewRouter.path = viewConfig.path
  viewRouter.name = viewConfig.name
  viewRouter.component = () => import(`@/${viewConfig.filePath}`)//路由对应的页面路径
  viewRouter.meta = {
    title: viewConfig.title,
    icon: viewConfig.icon,
    permission: viewConfig.permission,
    type: viewConfig.type,
    blueBaseColor: viewConfig.blueBaseColor ? 'viewConfig.blueBaseColor' : '',
  }

  homeRouter.push(viewRouter)
})
// console.log('我是路由',homeRouter)
export default homeRouter
